import type { RNTesterModuleInfo } from '../types/RNTesterTypes';

const Components: Array<RNTesterModuleInfo> = [

  {
    key: 'reactNativeCommunityProgressBarAndroid',
    category: 'Basic',
    module: require('../examples/react-native-community-progress-bar-android/Index'),
  },
  {
    key: 'reactNativeCommunitySlider',
    category: 'Basic',
    module: require('../examples/react-native-community-slider/Index'),
  },
  {
    key: 'rn-placeholder',
    category: 'Basic',
    module: require('../examples/rn-placeholder/Index'),
  },
  {
    key: 'reactNativeQRCodeSVG',
    category: 'Basic',
    module: require('../examples/react-native-qrcode-svg/Index'),
  },
   {
    key: 'react-native-section-list-get-item-layout',
    category: 'Basic',
    module: require('../examples/react-native-section-list-get-item-layout/Index'),
  },
  {
    key: 'react-native-image-picker',
    category: 'Basic',
    module: require('../examples/react-native-image-picker/Index'),
  },
  {
    key: 'react-native-dotenv',
    category: 'Basic',
    module: require('../examples/react-native-dotenv/Index'),
  },
  {
    key: 'react-native-render-html',
    category: 'Basic',
    module: require('../examples/react-native-render-html/Index'),
  },
  {
    key: 'react-native-community-geolocation',
    category: 'Basic',
    module: require('../examples/react-native-community-geolocation/Index'),
  },

  {
    key: 'react-native-community-blur',
    category: 'UI',
    module: require('../examples/react-native-community-blur/Index'),
  },
  {
    key: 'async-storage',
    category: 'Basic',
    module: require('../examples/react-native-async-storage-async-storage/Index'),
  },
  {
    key: 'react-native-view-shot',
    category: 'Basic',
    module: require('../examples/react-native-view-shot/Index'),
  },
  {
    key: 'react-native-fs',
    category: 'Basic',
    module: require('../examples/react-native-fs/Index'),
  },
  {
    key: 'ReactNativeAria',
    category: 'Basic',
    module: require('../examples/react-native-aria/ReactNativeAria'),
  },
  {
    key: 'ReactNativePermission',
    category: 'Basic',
    module: require('../examples/react-native-permissions/Index'),
  },
  {
    key: 'react-router-dom',
    category: 'Basic',
    module: require('../examples/react-router-dom/Index'),
  },
  {
    key: 'react-native-base64',
    category: 'Basic',
    module: require('../examples/react-native-base64/Index'),
  },

  {
    key: 'react-native-crypto-js',
    category: 'Basic',
    module: require('../examples/react-native-crypto-js/Index'),
  },
  {
    key: 'htmlparser2-without-node-native',
    category: 'Basic',
    module: require('../examples/htmlparser2-without-node-native/Index'),
  },
  {
    key: 'react-subscribe',
    category: 'Basic',
    module: require('../examples/react-subscribe/TesterDemo/ReactSubscribeTest'),
  },
  {
    key: 'react-native-drag-sort',
    category: 'Basic',
    module: require('../examples/react-native-drag-sort/index'),
  },
  {
    key: 'react-native-cookies-cookies',
    category: 'Basic',
    module: require('../examples/react-native-cookies-cookies/Index'),
  },
  {
    key: 'react-native-translucent-modal',
    category: 'Basic',
    module: require('../examples/react-native-translucent-modal/Index'),
  },
  {
    key: 'react-native-toolbar-android',
    category: 'Basic',
    module: require('../examples/react-native-toolbar-android/Index'),
  },
  {
    key: 'react-native-transitiongroup',
    category: 'Basic',
    module: require('../examples/react-native-transitiongroup/Index'),
  },
  {
    key: 'react-native-community/checkbox',
    category: 'UI',
    module: require('../examples/react-native-community/checkbox/Index'),
  },
  {
    key: 'react-native-slider',
    category: 'Basic',
    module: require('../examples/react-native-slider/Index'),
  },
  {
    key: 'react-native-secharts',
    category: 'Basic',
    module: require('../examples/react-native-secharts/App'),
  },
  {
    key: 'react-native-snap-carousel',
    category: 'Basic',
    module: require('../examples/react-native-snap-carousel/SnapCarousel'),
  },
  {
    key: 'react-native-vector-icons',
    category: 'Basic',
    module: require('../examples/react-native-vector-icons/TestIcon'),
  },
  {
    key: 'react-native-webview',
    category: 'Basic',
    module: require('../examples/react-native-webview/tests/WebViewTest'),
  },
  {
    key: 'react-native-autoheight-webview',
    category: 'Basic',
    module: require('../examples/react-native-autoheight-webview/TestCase/index'),
  },
  {
    key: 'react-native-video',
    category: 'Basic',
    module: require('../examples/react-native-video/TestVideo'),
  },
  {
    key: 'react-native-md5',
    category: 'Basic',
    module: require('../examples/react-native-md5/md5TestExample'),
  },
  {
    key: 'react-native-modalbox',
    category: 'Basic',
    module: require('../examples/react-native-modalBox/ModalBoxDemo'),
  },
  {
    key: 'react-native-zoomable-view',
    category: 'Basic',
    module: require('../examples/react-native-zoomable-view/tester/ReactNativeZoomableViewExample'),
  },
  {
    key: 'react-native-modals',
    category: 'Basic',
    module: require('../examples/react-native-modals/test/ReactNativeModalsExample'),
  },
  {
    key: 'react-native-mqtt',
    category: 'Basic',
    module: require('../examples/react-native-mqtt/MqttDemoTest'),
  },
  {
    key: 'react-native-qrcode',
    category: 'Basic',
    module: require('../examples/react-native-qrcode/QrCodeExample'),
  },
  {
    key: 'ant-design-mobile-rn',
    category: 'Basic',
    module: require('../examples/ant-design-mobile-rn/index'),
  },
  {
    key: 'react-native-modal-popover',
    category: 'Basic',
    module: require('../examples/react-native-modal-popover/index'),
  },
  {
    key: 'react-native-tab-navigator',
    category: 'Basic',
    module: require('../examples/react-native-tab-navigator/TabNavigatorTest'),
  },
  {
    key: 'react-native-action-button',
    category: 'Basic',
    module: require('../examples/react-native-action-button/index'),
  },
  {
    key: 'react-native-progress',
    category: 'Basic',
    module: require('../examples/react-native-progress/Test/index'),
  },
  {
    key: 'react-native-pdf',
    category: 'ui',
    module: require('../examples/react-native-pdf/testCase/App'),
  },
  {
    key: 'react-native-sound',
    category: 'Basic',
    module: require('../examples/react-native-sound/TextSound'),
  },
  {
    key: 'react-native-text-size',
    category: 'Basic',
    module: require('../examples/react-native-text-size/test/TextSizeTest'),
  },
  {
    key: 'react-native-community-push-notification-ios',
    category: 'Basic',
    module: require('../examples/react-native-community-push-notification-ios/test/PushNotificationIos'),
  },
  {
    key: 'react-native-community-push-notification-ios_jump',
    category: 'Basic',
    module: require('../examples/react-native-community-push-notification-ios/demo/index').default,
  },
  {
    key: 'react-native-community-segmented-control',
    category: 'Basic',
    module: require('../examples/react-native-community-segmented-control/SegmentedControl'),
  },
  {
    key: 'react-native-picker',
    category: 'UI',
    module: require('../examples/react-native-picker/Tester/PickerTester'),
  },
  {
    key: 'react-native-blob-util',
    category: 'Basic',
    module: require('../examples/react-native-blob-util/testCase/blobTest/index'),
  },
  {
    key: 'react-native-tab-view',
    category: 'Basic',
    module: require('../examples/react-native-tab-view/test/tabView'),
  },
  {
    key: 'react-native-community-netinfo',
    category: 'Basic',
    module: require('../examples/react-native-community-netinfo/test/NetInfoTest'),
  },
  {
    key: 'ReactNativeProgressView',
    category: 'Basic',
    module: require('../examples/react-native-community/progress-view/App'),
  },
  {
    key: 'react-native-clipboard',
    category: 'Basic',
    module: require('../examples/react-native-clipboard/test/ClipboardExample'),
  },
  {
    key: 'react-native-redash',
    category: 'Basic',
    module: require('../examples/react-native-redash/Test/RedashIndex'),
  },
  {
    key: 'KeyboardAwareScrollView',
    category: 'Basic',
    module: require('../examples/react-native-keyboard-aware-scroll-view/index'),
  },
  {
    key: 'react-native-video-cache',
    category: 'Basic',
    module: require('../examples/react-native-video-cache/VideoCacheDemo'),
  },
  {
    key: 'react-native-checkbox',
    category: 'UI',
    module: require('../examples/react-native-check-box/Tester/CheckBoxJSTest'),
  },
  {
    key: 'react-native-icon-cli',
    category: 'UI',
    module: require('../examples/react-native-iconfont-cli/demo/IconFont'),
  },
  {
    key: 'react-native-pickers',
    category: 'UI',
    module: require('../examples/react-native-pickers/index'),
  },
  {
    key: 'react-native-community/datetimepicker',
    category: 'UI',
    module: require('../examples/react-native-community/datetimepicker/demo/test/DateTimePickerTestDemo'),
  },
  {
    key: 'lottie-react-native',
    category: 'UI',
    module: require('../examples/lottie-react-native/test/LottieTest'),
  },
  {
    key: 'react-native-dynamic',
    category: 'UI',
    module: require('../examples/react-native-dynamic/ReactNativeDynamicDemo'),
  },
  {
    key: 'recyclerlistview',
    category: 'UI',
    module: require('../examples/recyclerlistview/demo/test/recyclerListViewTestDemo/index'),
  },
  {
    key: 'react-native-cameraroll',
    category: 'basic',
    module: require('../examples/react-native-cameraroll/test/CamerarollTest'),
  },
  {
    key: 'ReactNativeExceptionHandler',
    category: 'Basic',
    module: require('../examples/react-native-exception-handler/App'),
  },
  {
    key: 'react-native-date-picker',
    category: 'basic',
    module: require('../examples/react-native-date-picker/tester/DatePickerExample'),
  },
  {
    key: 'react-native-reanimated-carousel',
    category: 'basic',
    module: require('../examples/react-native-reanimated-carousel/Tester/ReanimatedCarousel'),
  },
  {
    key: 'react-native-input-scroll-view',
    category: 'basic',
    module: require('../examples/react-native-input-scroll-view/index'),
  },
  {
    key: 'react-native-screens',
    category: 'basic',
    module: require('../examples/react-native-screens/index'),
  },
  {
    key: 'react-native-drax',
    category: 'basic',
    module: require('../examples/react-native-drax/test/tester/index'),
  },
  {
    key: 'react-native-status-bar-height',
    category: 'UI',
    module: require('../examples/react-native-status-bar-height/Index'),
  },
  {
    key: 'react-navigation-tabs',
    category: 'UI',
    module: require('../examples/react-navigation-tabs/test/TabsDemo'),
  },
  // {
  //   key: 'react-native-maps',
  //   category: 'basic',
  //   module: require('../examples/react-native-maps/Test/App'),
  // },
];

const APIs: Array<RNTesterModuleInfo> = [

];

const Modules: any = {};

APIs.concat(Components).forEach(Example => {
  Modules[Example.key] = Example.module;
});

const RNTesterList = {
  APIs,
  Components,
  Modules,
};

export default RNTesterList;
